// access.ts

/**
 * 权限控制函数
 * 根据用户信息定义项目中的权限
 * @param initialState 初始状态，包含用户信息
 * @returns 权限对象
 */
export default (initialState: {
  name: string;
  userInfo?: {
    id?: number;
    name?: string;
    nickName?: string;
    className?: string;
    stuNo?: string;
    phone?: string;
    email?: string;
    role?: string;
    gender?: number;
    avatar?: string;
    status?: string;
    createTime?: string;
    updateTime?: string;
  };
}) => {
  // 在这里按照初始化数据定义项目中的权限，统一管理
  // 参考文档 https://umijs.org/docs/max/access

  // 根据用户信息定义权限
  // 只有角色为ADMIN或TEACHER的用户才能访问管理员页面
  const canAdmin =
    initialState?.userInfo?.role === 'ADMIN' || initialState?.userInfo?.role === 'TEACHER';
  // 登录页面不需要权限
  const noAuth = true;

  return {
    canAdmin,
    noAuth,
  };
};
